package org.homeorganiser.flex.service;

import java.util.Collection;
import java.util.List;

import org.homeorganiser.flex.dto.Book;
import org.homeorganiser.flex.dto.Category;
import org.homeorganiser.flex.dto.Genre;
import org.homeorganiser.flex.dto.Language;
import org.homeorganiser.flex.dto.Location;
import org.homeorganiser.flex.dto.Publication;
import org.homeorganiser.flex.dto.Quality;
import org.homeorganiser.flex.dto.ScreenShot;
import org.homeorganiser.flex.dto.SubCategory;
import org.homeorganiser.flex.dto.Type;
import org.homeorganiser.flex.vo.LoggedInUser;
import org.homeorganiser.flex.vo.UserDetail;

public interface IHomeOrganiserService {
	public LoggedInUser logIn(String userName, String password);

	public boolean checkUserNameAvailiablity(String userName);

	public String registerUser(UserDetail usrDetail);

	public String forgotPassword(String userName);

	public List<UserDetail> getAllUsers();

	public List<UserDetail> getUsers(String usrName, String firstName,
			String lastName, String usremail);

	public UserDetail getUserDetail(int userReg);

	public String updateUserDetail(UserDetail usrDetail);
	
	

	public List<Book> getAllBooks();

	public List<Language> getAllLanguage(int invtype);

	public List<Genre> getAllGenre(int invtype);

	public List<Type> getAllType(int invtype);

	public List<Category> getAllCategory(int invtype);

	public List<SubCategory> getAllSubCategory(int invtype);

	public List<Location> getAllLocation(int invtype);

	public List<Quality> getAllQuality(int invtype);

	public List<ScreenShot> getAllScreenshot(int inventoryid);
	
	public List<Publication> getAllPublications(int invtype);
	
	public Publication addPublication(Publication publication);
	
	public Book addBook(Book book);

	public Genre addGenre(Genre genre);

	public Type addType(Type type);

	public Language addLanguage(Language lang);

	public Category addCategory(Category cat);

	public SubCategory addSubCategory(SubCategory subcat);

	public Location addLocation(Location location);

	public Quality addQuality(Quality quality);

	public String addAllScreenShot(Collection<ScreenShot> screenshot);

	public ScreenShot addScreenShot(ScreenShot screenshot);

}
